package ChatNI;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import protocol.Message;

/**
 *
 * @author ramondou
 */
public class ChatNI {

    private int port;
    private int portDest = 1235;

    public byte[] serialiser(Message m) throws Exception {
        //On crée un tableau d'octet car la création d'un datagramme UDP exige
        //un byte[] en argument
        byte sortieByte [];

        //On sérialize l'objet Message
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        //L'obet est recopié dans le flux de sortie associé au baos
        oos.writeObject(m);
        //La mémoire est libéré
        oos.flush();

        // on récupère le tableau d'octets
        sortieByte = baos.toByteArray();

        return sortieByte;
    }

    //On recupère un objet de type Message e† parti d'un tableau d'octets
    public static Message deserialiser(byte[] data) throws Exception {
        ByteArrayInputStream baos = new ByteArrayInputStream(data);
        ObjectInputStream oos = new ObjectInputStream(baos);
        Message message = (Message)oos.readObject();
        return message;
    }

}
